To: "Antreas P. Hatzipolakis" <athena.compulink.gr>
>I have a question about the language name:
>What is the etymology of SCM?
>(SCM = SCheMe ? )
Antreas,
That's a good question. You'd have to ask the author, Aubrey Jaffer, about his choice of names.
The language name, Scheme, is simply the six-character abbreviation of Schemer, which Guy Steele and Gerald Sussman chose as the name to compete with other popular MIT AI languages of the day, e.g. Conniver and Planner.
Paul Snively
1. MacGambit
Etymology: ?
MAC NAME: MacGambit
VERSION: 2.2
README:
"MacGambit is a full implementation of Scheme that conforms to the IEEE-Scheme standard (IEEE P1178) and to the Revised4 Report on Scheme ( R4RS)."
"Pixie Scheme implements the Scheme variant of the Lisp programming language, including nearly all of "R3 Report" Scheme. It requires a Macintosh Plus or better, at least a megabyte of memory, and version 6 or later of Macintosh System Software. A HyperCard help stack, "Pixie Scheme Help", has detailed documentation: It will run with HyperCard 1.25.
Improvements in this release include a rudimentary compiler and a fair amount of on–line help. For other changes, see the "New" section of the help stack."
Enclosed is a BinHex'ed StuffIt Lite/Deluxe archive containing a fat binary, the 68K and PPC project files, and two files created with GNU diff that comprise the diffs from the scm4e1 and macscm releases to be found on swiss-ftp.ai.mit.edu. You'll need a patch tool for MPW/ToolServer, which you can find at nic.switch.ch in software/mac/src/mpw_c, to patch those source releases with my diffs."
"MacSCM is similar to x-scm (a SCM package for X-Windows) in that it is a bolt-on accessory for the "scm" Scheme interpreter that provides a way to build Macintosh applications.
To build MacSCM, you must first obtain and successfully build scm, version scm4e0 or later. Thanks to some hooks added to scm by its author, Aubrey Jaffer, x-scm requires no modifications whatsoever to scm itself."
"This is a scheme interpreter with built-in procedures using the Oracle Call Interface (OCI) and DIGITAL RDB SQL Services. You can use it merely as a flexible database loader/unloader with fast binary flat-file data save/restore. Or you can use it to apply the classic "Symbolic Manipulation" or "Artificial Intelligence" techniques on your data sets. The main-program can be oriented towards batch, character-cell terminal, or Window/GUI."
"Help is a statically1 scoped language (identifier scope is lexical) as are Scheme, Algol… Each identifier occurrence is associated with a lexically visible binding of this identifier.
Help is non-sctrict, relying on call by need (also referred as “lazyness”) for every parameter passing as in Lazy Miranda, Hope…
Help is dynamically typed (types are latent), i.e. types are associated with values not variables. This is usual in Lisp, APL, Snobol…
Help closures (or procedures) are full citizens that may be dynamically created, gathered in any data structure (eventually infinite data structures)… Help shares this quality with every “functionnal” language (such as Hope, Miranda, Daisy…).
Help objects (closures, evironments, numbers) have unlimited extent. The memory management software will simply collect any object that may not be referenced by Help user (usually referred as the “GC” or “Garbage Collector”). The same type of system is used in every Lisp, APL, Prolog . It has been proposed for Ada, but no implementation i know has included it.
Help does not supports iteration, only recursion (lazyness and iteration do not originate from the same world). Therefore, the interpreter efficiently handles terminal recursions. This allows these recursions to operate with a fixed stack size consumption."